unique |
您所在的位置:网站首页 › openssl x509 › unique |
正如另一个问题所建议的那样,我使用一些using语句并unique_ptr使用OpenSSL 。没有它,代码将变得非常丑陋,我不是goto语句的忠实拥护者。 到目前为止,我已尽可能地更改了代码。这是我使用的示例: using BIO_ptr = std::unique_ptr; using X509_ptr = std::unique_ptr; using EVP_PKEY_ptr = std::unique_ptr; using PKCS7_ptr = std::unique_ptr; ... BIO_ptr tbio(BIO_new_file(some_filename, "r"), ::BIO_free);现在我需要a STACK_OF(X509),我不知道,是否也可以使用unique_ptr。我正在寻找与下面类似的东西,但这不起作用。 using STACK_OF_X509_ptr = std::unique_ptr;我也尝试过Functor: struct StackX509Deleter { void operator()(STACK_OF(X509) *ptr) { sk_X509_free(ptr); } }; using STACK_OF_X509_ptr = std::unique_ptr; STACK_OF_X509_ptr chain(loadIntermediate(cert.string()));编译器接受这一点,然后应用程序运行。只是一个问题:在unique_ptrs上面显示的另一个问题中,我总是指定了第二个参数,所以我敢打赌我缺少了一些东西: STACK_OF_X509_ptr chain(loadIntermediate(cert.string()), ??????);如何使用C ++ unique_ptr和OpenSSL STACK_OF(X509)*? 1> Christian Rö..: 我定义了一个常规函数: void stackOfX509Deleter(STACK_OF(X509) *ptr) { sk_X509_free(ptr); }然后在代码中使用它: using STACK_OF_X509_ptr = std::unique_ptr; STACK_OF_X509_ptr chain(loadIntermediate(cert.string()), stackOfX509Deleter); |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |